package com.ningxun.rms.domain.basewechatuser;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ningxun.rms.common.annotation.Excel;

/**
 * 微信用户信息对象 base_wechat_user
 * 
 * @author rms
 * @date 2025-07-15
 */
@TableName("base_wechat_user")
public class BaseWechatUser
{
    private static final long serialVersionUID = 1L;

    @TableId(value="user_id",type=IdType.AUTO)
    /** 用户ID，主键 */
    private Long userId;

    /** 开放平台ID */
    @Excel(name = "开放平台ID")
    private String openId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String name;

    /** 用户年龄 */
    @TableField(exist = false)
    @Excel(name = "用户年龄")
    private String age;

    /** 性别：1-男，2-女，0-其他 */
    @Excel(name = "性别：1-男，2-女，0-其他")
    private Long gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 开始日期 */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginBirthday;

    /** 结束日期 */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endBirthday;

    /** 所属学院 */
    @Excel(name = "所属学院")
    private String college;

    /** 所学专业 */
    @Excel(name = "所学专业")
    private String major;

    /** 年级 */
    @Excel(name = "年级")
    private String grade;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setOpenId(String openId) 
    {
        this.openId = openId;
    }

    public String getOpenId() 
    {
        return openId;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setAge(String age) 
    {
        this.age = age;
    }

    public String getAge() 
    {
        return age;
    }

    public void setGender(Long gender) 
    {
        this.gender = gender;
    }

    public Long getGender() 
    {
        return gender;
    }

    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }

    public Date getBeginBirthday()
    {
        return beginBirthday;
    }

    public void setBeginBirthday(Date beginBirthday)
    {
        this.beginBirthday = beginBirthday;
    }

    public Date getEndBirthday()
    {
        return endBirthday;
    }

    public void setEndBirthday(Date endBirthday)
    {
        this.endBirthday = endBirthday;
    }

    public void setCollege(String college) 
    {
        this.college = college;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCollege()
    {
        return college;
    }

    public void setMajor(String major) 
    {
        this.major = major;
    }

    public String getMajor() 
    {
        return major;
    }

    public void setGrade(String grade) 
    {
        this.grade = grade;
    }

    public String getGrade() 
    {
        return grade;
    }

    public BaseWechatUser() {
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("openId", getOpenId())
            .append("name", getName())
            .append("age", getAge())
            .append("gender", getGender())
            .append("birthday", getBirthday())
            .append("college", getCollege())
            .append("major", getMajor())
            .append("grade", getGrade())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
